home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 16 / CU Amiga Magazine's Super CD-ROM 16 (1997-10-16)(EMAP Images)(GB)[!][issue 1997-11].iso / CUCD / Graphics / Ghostscript / source / os2.mak < prev    next >
Text File  |  1997-06-18  |  15KB  |  554 lines

  1. #    Copyright (C) 1989, 1995, 1996, 1997 Aladdin Enterprises.  All rights reserved.
  2. # This file is part of Aladdin Ghostscript.
  3. # Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND.  No author
  4. # or distributor accepts any responsibility for the consequences of using it,
  5. # or for whether it serves any particular purpose or works at all, unless he
  6. # or she says so in writing.  Refer to the Aladdin Ghostscript Free Public
  7. # License (the "License") for full details.
  8. # Every copy of Aladdin Ghostscript must include a copy of the License,
  9. # normally in a plain ASCII text file named PUBLIC.  The License grants you
  10. # the right to copy, modify and redistribute Aladdin Ghostscript, but only
  11. # under certain conditions described in the License.  Among other things, the
  12. # License requires that the copyright notice and this notice be preserved on
  13. # all copies.
  14.  
  15. # makefile for MS-DOS or OS/2 GCC/EMX platform.
  16. # Uses Borland (MSDOS) MAKER or 
  17. # Uses IBM NMAKE.EXE Version 2.000.000 Mar 27 1992
  18.  
  19. # ------------------------------- Options ------------------------------- #
  20.  
  21. ###### This section is the only part of the file you should need to edit.
  22.  
  23. # ------ Generic options ------ #
  24.  
  25. # Define the directory that will hold documentation at runtime.
  26.  
  27. GS_DOCDIR=c:/gs
  28.  
  29. # Define the default directory/ies for the runtime
  30. # initialization and font files.  Separate multiple directories with ;.
  31. # Use / to indicate directories, not a single \.
  32.  
  33. GS_LIB_DEFAULT=c:/gs;c:/gs/fonts
  34.  
  35. # Define whether or not searching for initialization files should always
  36. # look in the current directory first.  This leads to well-known security
  37. # and confusion problems, but users insist on it.
  38. # NOTE: this also affects searching for files named on the command line:
  39. # see the "File searching" section of use.txt for full details.
  40. # Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
  41.  
  42. SEARCH_HERE_FIRST=1
  43.  
  44. # Define the name of the interpreter initialization file.
  45. # (There is no reason to change this.)
  46.  
  47. GS_INIT=gs_init.ps
  48.  
  49. # Choose generic configuration options.
  50.  
  51. # Setting DEBUG=1 includes debugging features (-Z switch) in the code.
  52. # Code runs substantially slower even if no debugging switches are set,
  53. # and also takes about another 25K of memory.
  54.  
  55. DEBUG=0
  56.  
  57. # Setting GDEBUG=1 includes symbol table information for GDB.
  58. # Produces larger .OBJ and .EXE files.
  59.  
  60. GDEBUG=0
  61.  
  62. # Setting NOPRIVATE=1 makes private (static) procedures and variables public,
  63. # so they are visible to the debugger and profiler.
  64. # No execution time or space penalty, just larger .OBJ and .EXE files.
  65.  
  66. NOPRIVATE=0
  67.  
  68. # Setting MAKEDLL=1 makes the target a DLL instead of an EXE
  69. MAKEDLL=1
  70.  
  71. # Setting EMX=1 uses GCC/EMX
  72. # Setting IBMCPP=1 uses IBM C++
  73. EMX=1
  74. IBMCPP=0
  75.  
  76. # Define the name of the executable file.
  77.  
  78. GS=gsos2
  79. GSDLL=gsdll2
  80.  
  81. # Define the directory where the IJG JPEG library sources are stored,
  82. # and the major version of the library that is stored there.
  83. # You may need to change this if the IJG library version changes.
  84. # See jpeg.mak for more information.
  85.  
  86. JSRCDIR=jpeg-6a
  87. JVERSION=6
  88.  
  89. # Define the directory where the PNG library sources are stored,
  90. # and the version of the library that is stored there.
  91. # You may need to change this if the libpng version changes.
  92. # See libpng.mak for more information.
  93.  
  94. PSRCDIR=libpng
  95. PVERSION=96
  96.  
  97. # Define the directory where the zlib sources are stored.
  98. # See zlib.mak for more information.
  99.  
  100. ZSRCDIR=zlib
  101.  
  102. # Define the configuration ID.  Read gs.mak carefully before changing this.
  103.  
  104. CONFIG=
  105.  
  106. # ------ Platform-specific options ------ #
  107.  
  108. # If you don't have an assembler, set USE_ASM=0.  Otherwise, set USE_ASM=1,
  109. # and set ASM to the name of the assembler you are using.  This can be
  110. # a full path name if you want.  Normally it will be masm or tasm.
  111.  
  112. USE_ASM=0
  113. ASM= 
  114.  
  115. # Define the drive, directory, and compiler name for the EMX files.
  116. # COMP is the compiler name (gcc)
  117. # COMPDIR contains the compiler and linker (normally \emx\bin).
  118. # EMXPATH contains the path to the EMX directory (normally /emx)
  119. # INCDIR contains the include files (normally /emx/include).
  120. # LIBDIR contains the library files (normally /emx/lib).
  121. # Note that these prefixes are always followed by a \,
  122. #   so if you want to use the current directory, use an explicit '.'.
  123.  
  124. !if $(EMX)
  125. COMP=gcc
  126. COMPBASE=\emx
  127. EMXPATH=/emx
  128. COMPDIR=$(COMPBASE)\bin
  129. INCDIR=$(EMXPATH)/include
  130. LIBDIR=$(EMXPATH)/lib
  131. !endif
  132.  
  133. !if $(IBMCPP)
  134. COMP=icc /Q
  135. COMPBASE=\ibmcpp
  136. TOOLPATH=\toolkit
  137. COMPDIR=$(COMPBASE)\bin
  138. INCDIR=$(TOOLPATH)\h;$(COMPBASE)\include
  139. LIBDIR=$(TOOLPATH)\lib;$(COMPBASE)\lib
  140. !endif
  141.  
  142. # Choose platform-specific options.
  143.  
  144. # Define the processor (CPU) type.  Options are 86 (8086 or 8088),
  145. # 186, 286, 386, 485 (486SX or Cyrix 486SLC), 486 (486DX), or 586 (Pentium).
  146. # Higher numbers produce code that may be significantly smaller and faster,
  147. # but the executable will bail out with an error message on any processor
  148. # less capable than the designated one.
  149.  
  150. # EMX requires 386 or higher
  151. CPU_TYPE=386
  152.  
  153. # Define the math coprocessor (FPU) type.
  154. # Options are -1 (optimize for no FPU), 0 (optimize for FPU present,
  155. # but do not require a FPU), 87, 287, or 387.
  156. # If CPU_TYPE is 486 or above, FPU_TYPE is implicitly set to 387,
  157. # since 486DX and later processors include the equivalent of an 80387 on-chip.
  158. # An xx87 option means that the executable will run only if a FPU
  159. # of that type (or higher) is available: this is NOT currently checked
  160. # at runtime.
  161.  
  162. FPU_TYPE=0
  163.  
  164. # ---------------------------- End of options ---------------------------- #
  165.  
  166. # Note that built-in libpng and zlib aren't available.
  167.  
  168. SHARE_LIBPNG=0
  169. SHARE_ZLIB=0
  170.  
  171. # Swapping `make' out of memory makes linking much faster.
  172. # only used by Borland MAKER.EXE
  173.  
  174. #.swap
  175.  
  176. # Define the platform name.
  177.  
  178. PLATFORM=os2_
  179.  
  180. # Define the name of the makefile -- used in dependencies.
  181.  
  182. MAKEFILE=os2.mak
  183.  
  184. # Define the files to be deleted by 'make begin' and 'make clean'.
  185.  
  186. BEGINFILES=gspmdrv.exe gs*.res gs*.ico $(GSDLL).dll
  187.  
  188. # Define the ANSI-to-K&R dependency.
  189.  
  190. AK=
  191.  
  192. #Compiler Optimiser option
  193. !if $(EMX)
  194. CO=-O
  195. !endif
  196. !if $(IBMCPP)
  197. #CO=/O+
  198. CO=/O-
  199. !endif
  200.  
  201. # Make sure we get the right default target for make.
  202.  
  203. dosdefault: default gspmdrv.exe
  204.  
  205. # Define a rule for invoking just the preprocessor.
  206.  
  207. .c.i:
  208.     $(COMPDIR)\cpp $(CCFLAGS) $<
  209.  
  210. # Define the extensions for command, object, and executable files.
  211.  
  212. CMD=.cmd
  213. O=-o ./
  214. !if $(MAKEDLL)
  215. OBJ=obj
  216. !else
  217. OBJ=o
  218. !endif
  219. XE=.exe
  220. XEAUX=.exe
  221.  
  222. # Define the current directory prefix, shell quote string, and shell name.
  223.  
  224. D=\#
  225.  
  226. EXP=
  227. QQ="
  228. SH=
  229. SHP=
  230.  
  231. # Define generic commands.
  232.  
  233. # We use cp.cmd rather than copy /B so that we update the write date.
  234. CP_=cp.cmd
  235. # We use rm.cmd rather than erase because rm.cmd never generates
  236. # a non-zero return code.
  237. RM_=rm.cmd
  238. # OS/2 erase, unlike MS-DOS erase, accepts multiple files or patterns.
  239. RMN_=rm.cmd
  240.  
  241. # Define the arguments for genconf.
  242.  
  243. !if $(MAKEDLL)
  244. CONFILES=-p %%s+ -o $(ld_tr) -l lib.tr
  245. !else
  246. CONFILES=-o $(ld_tr) -l lib.tr
  247. !endif
  248.  
  249. # Define the generic compilation flags.
  250.  
  251. !if $(CPU_TYPE) >= 486
  252. ASMCPU=/DFOR80386 /DFOR80486
  253. PLATOPT=-DFOR80386 -DFOR80486
  254. !else
  255. !if $(CPU_TYPE) >= 386
  256. ASMCPU=/DFOR80386
  257. PLATOPT=-DFOR80386
  258. !endif
  259. !endif
  260.  
  261. !if $(FPU_TYPE) > 0
  262. ASMFPU=/DFORFPU
  263. !else
  264. ASMFPU=
  265. !endif
  266.  
  267. !if $(USE_ASM)
  268. INTASM=iutilasm.$(OBJ)
  269. PCFBASM=gdevegaa.$(OBJ)
  270. !else
  271. INTASM=
  272. PCFBASM=
  273. !endif
  274.  
  275. # Define the generic compilation rules.
  276.  
  277. ASMFLAGS=$(ASMCPU) $(ASMFPU) $(ASMDEBUG)
  278.  
  279. .asm.o:
  280.     $(ASM) $(ASMFLAGS) $<;
  281.  
  282. # ---------------------- MS-DOS I/O debugging option ---------------------- #
  283.  
  284. dosio_=zdosio.$(OBJ)
  285. dosio.dev: $(dosio_)
  286.     $(SETMOD) dosio $(dosio_)
  287.     $(ADDMOD) dosio -oper zdosio
  288.  
  289. zdosio.$(OBJ): zdosio.c $(OP) $(store_h)
  290.  
  291. # ----------------------------- Assembly code ----------------------------- #
  292.  
  293. iutilasm.$(OBJ): iutilasm.asm
  294.  
  295. #################  END
  296.  
  297. # Define the compilation flags.
  298.  
  299. !if $(NOPRIVATE)
  300. CP=-DNOPRIVATE
  301. !else
  302. CP=
  303. !endif
  304.  
  305. !if $(DEBUG)
  306. CD=-DDEBUG
  307. !else
  308. CD=
  309. !endif
  310.   
  311. !if $(GDEBUG)
  312. !if $(EMX)
  313. CGDB=-g
  314. !endif
  315. !if $(IBMCPP)
  316. CGDB=/Ti+
  317. !endif
  318. !else
  319. CGDB=
  320. !endif
  321.  
  322. !if $(MAKEDLL)
  323. !if $(EMX)
  324. CDLL=-Zdll -Zso -Zsys -Zomf -D__DLL__
  325. !endif
  326. !if $(IBMCPP)
  327. CDLL=/Gd- /Ge- /Gm+ /Gs+ /D__DLL__
  328. !endif
  329. !else
  330. CDLL=
  331. !endif
  332.  
  333. GENOPT=$(CP) $(CD) $(CGDB) $(CDLL) $(CO)
  334.  
  335. CCFLAGS0=$(GENOPT) $(PLATOPT)
  336. CCFLAGS=$(CCFLAGS0) 
  337. CC=$(COMPDIR)\$(COMP) $(CCFLAGS0)
  338. CCC=$(CC) -c
  339. CCD=$(CC) $(CO) -c
  340. CCCF=$(COMPDIR)\$(COMP) $(CO) $(CCFLAGS0) -c
  341. CCINT=$(CC) -c
  342. CCLEAF=$(CCC)
  343.  
  344. .c.o:
  345. #    $(CCC) { $<}
  346.     $(CCC) $<
  347.  
  348. .c.obj:
  349.     $(CCC) $<
  350.  
  351.  
  352. # ------ Devices and features ------ #
  353.  
  354. # Choose the language feature(s) to include.  See gs.mak for details.
  355. # Since we have a large address space, we include some optional features.
  356.  
  357. FEATURE_DEVS=level2.dev pdf.dev
  358.  
  359. # Choose whether to compile the .ps initialization files into the executable.
  360. # See gs.mak for details.
  361.  
  362. COMPILE_INITS=0
  363.  
  364. # Choose whether to store band lists on files or in memory.
  365. # The choices are 'file' or 'memory'.
  366.  
  367. BAND_LIST_STORAGE=file
  368.  
  369. # Choose which compression method to use when storing band lists in memory.
  370. # The choices are 'lzw' or 'zlib'.  lzw is not recommended, because the
  371. # LZW-compatible code in Ghostscript doesn't actually compress its input.
  372.  
  373. BAND_LIST_COMPRESSOR=zlib
  374.  
  375. # Choose the implementation of file I/O: 'stdio', 'fd', or 'both'.
  376. # See gs.mak and sfxfd.c for more details.
  377.  
  378. FILE_IMPLEMENTATION=stdio
  379.  
  380. # Choose the device(s) to include.  See devs.mak for details.
  381.  
  382. !if $(MAKEDLL)
  383. DEVICE_DEVS=os2pm.dev os2dll.dev os2prn.dev
  384. !else
  385. DEVICE_DEVS=os2pm.dev
  386. !endif
  387. #DEVICE_DEVS1=x11.dev x11alpha.dev x11cmyk.dev x11mono.dev
  388. DEVICE_DEVS2=epson.dev eps9high.dev eps9mid.dev epsonc.dev ibmpro.dev
  389. DEVICE_DEVS3=deskjet.dev djet500.dev laserjet.dev ljetplus.dev ljet2p.dev ljet3.dev ljet4.dev
  390. DEVICE_DEVS4=cdeskjet.dev cdjcolor.dev cdjmono.dev cdj550.dev pj.dev pjxl.dev pjxl300.dev
  391. DEVICE_DEVS5=djet500c.dev declj250.dev lj250.dev jetp3852.dev r4081.dev t4693d2.dev t4693d4.dev t4693d8.dev tek4696.dev lbp8.dev
  392. DEVICE_DEVS6=st800.dev stcolor.dev bj10e.dev bj200.dev bjc600.dev bjc800.dev m8510.dev necp6.dev
  393. DEVICE_DEVS7=dfaxhigh.dev dfaxlow.dev
  394. DEVICE_DEVS8=pcxmono.dev pcxgray.dev pcx16.dev pcx256.dev pcx24b.dev pcxcmyk.dev
  395. DEVICE_DEVS9=pbm.dev pbmraw.dev pgm.dev pgmraw.dev pgnm.dev pgnmraw.dev pnm.dev pnmraw.dev ppm.dev ppmraw.dev
  396. DEVICE_DEVS10=tiffcrle.dev tiffg3.dev tiffg32d.dev tiffg4.dev tifflzw.dev tiffpack.dev
  397. DEVICE_DEVS11=bmpmono.dev bmp16.dev bmp256.dev bmp16m.dev tiff12nc.dev tiff24nc.dev
  398. DEVICE_DEVS12=psmono.dev psgray.dev bit.dev bitrgb.dev bitcmyk.dev
  399. DEVICE_DEVS13=pngmono.dev pnggray.dev png16.dev png256.dev png16m.dev
  400. DEVICE_DEVS14=jpeg.dev jpeggray.dev
  401. DEVICE_DEVS15=pdfwrite.dev
  402.  
  403. # Include the generic makefiles.
  404. !include "version.mak"
  405. !include "gs.mak"
  406. !include "lib.mak"
  407. !include "jpeg.mak"
  408. !include "libpng.mak"
  409. !include "zlib.mak"
  410. !include "devs.mak"
  411. !include "int.mak"
  412.  
  413. # -------------------------------- Library -------------------------------- #
  414.  
  415. # The GCC/EMX platform
  416.  
  417. os2__=gp_nofb.$(OBJ) gp_os2.$(OBJ)
  418. os2_.dev: $(os2__)
  419.     $(SETMOD) os2_ $(os2__)
  420. !if $(MAKEDLL)
  421. # Using a file device resource to get the console streams re-initialized 
  422. # is bad architecture (an upward reference to ziodev),                   
  423. # but it will have to do for the moment.                                 
  424. #   We need to redirect stdin/out/err to gsdll_callback
  425.         $(ADDMOD) os2_ -iodev wstdio                                   
  426. !endif
  427.   
  428.  
  429. gp_os2.$(OBJ): gp_os2.c $(dos__h) $(string__h) $(time__h) $(gsdll_h) \
  430.   $(gx_h) $(gsexit_h) $(gsutil_h) $(gp_h)
  431.  
  432. # -------------------------- Auxiliary programs --------------------------- #
  433.  
  434. CCAUX=$(COMPDIR)\$(COMP) $(CO)
  435.  
  436. $(ECHOGS_XE): echogs.c
  437. !if $(EMX)
  438.     $(CCAUX) -o echogs echogs.c
  439.     $(COMPDIR)\emxbind $(EMXPATH)/bin/emxl.exe echogs echogs.exe
  440.     del echogs
  441. !endif
  442. !if $(IBMCPP)
  443.     $(CCAUX) /Feechogs.exe echogs.c
  444. !endif
  445.  
  446. $(GENARCH_XE): genarch.c $(stdpre_h)
  447. !if $(EMX)
  448.     $(CCAUX) -o genarch genarch.c
  449.     $(COMPDIR)\emxbind $(EMXPATH)/bin/emxl.exe genarch genarch.exe
  450.     del genarch
  451. !endif
  452. !if $(IBMCPP)
  453.     $(CCAUX) /Fegenarch genarch.c
  454. !endif
  455.  
  456. $(GENCONF_XE): genconf.c $(stdpre_h)
  457. !if $(EMX)
  458.     $(CCAUX) -o genconf genconf.c
  459.     $(COMPDIR)\emxbind $(EMXPATH)/bin/emxl.exe genconf genconf.exe
  460.     del genconf
  461. !endif
  462. !if $(IBMCPP)
  463.     $(CCAUX) /Fegenconf genconf.c
  464. !endif
  465.  
  466. $(GENINIT_XE): geninit.c $(stdio__h) $(string__h)
  467. !if $(EMX)
  468.     $(CCAUX) -o geninit geninit.c
  469.     $(COMPDIR)\emxbind $(EMXPATH)/bin/emxl.exe geninit geninit.exe
  470.     del geninit
  471. !endif
  472. !if $(IBMCPP)
  473.     $(CCAUX) /Fegeninit geninit.c
  474. !endif
  475.  
  476. # No special gconfig_.h is needed.
  477. gconfig_.h: os2.mak $(ECHOGS_XE)
  478.     echogs -w gconfig_.h /* This file deliberately left blank. */
  479.  
  480. gconfigv.h: os2.mak $(MAKEFILE) $(ECHOGS_XE)
  481.     $(EXP)echogs -w gconfigv.h -x 23 define USE_ASM -x 2028 -q $(USE_ASM)-0 -x 29
  482.     $(EXP)echogs -a gconfigv.h -x 23 define USE_FPU -x 2028 -q $(FPU_TYPE)-0 -x 29
  483.     $(EXP)echogs -a gconfigv.h -x 23 define EXTEND_NAMES 0$(EXTEND_NAMES)
  484.  
  485. # ----------------------------- Main program ------------------------------ #
  486.  
  487. CCBEGIN=$(CCC) *.c
  488.  
  489. # Interpreter main program
  490.  
  491. ICONS=gsos2.ico gspmdrv.ico
  492.  
  493. !if $(MAKEDLL)
  494. #making a DLL
  495. GS_ALL=gsdll.$(OBJ) $(INT_ALL) $(INTASM)\
  496.   $(LIB_ALL) $(LIBCTR) $(ld_tr) lib.tr $(GS).res $(ICONS)
  497.  
  498. $(GS_XE): $(GSDLL).dll dpmainc.c gsdll.h gsos2.rc gscdefs.$(OBJ)
  499. !if $(EMX)
  500.     $(COMPDIR)\gcc $(CGDB) $(CO) -Zomf -o$(GS_XE) dpmainc.c gscdefs.$(OBJ) gsos2.def
  501. !endif
  502. !if $(IBMCPP)
  503.     $(CCAUX) /Fe$(GX_XE) dpmainc.c gscdefs.$(OBJ)
  504. !endif
  505.     rc gsos2.res $(GS_XE)
  506.  
  507. gsdll.$(OBJ): gsdll.c gsdll.h $(ghost_h)
  508.  
  509. $(GSDLL).dll: $(GS_ALL) $(ALL_DEVS) gsdll.$(OBJ)
  510. !if $(EMX)
  511.     LINK386 /DEBUG $(COMPBASE)\lib\dll0.obj $(COMPBASE)\lib\end.lib @$(ld_tr) gsdll.obj, $(GSDLL).dll, ,$(COMPBASE)\lib\gcc.lib $(COMPBASE)\lib\st\c.lib $(COMPBASE)\lib\st\c_dllso.lib $(COMPBASE)\lib\st\sys.lib $(COMPBASE)\lib\c_alias.lib $(COMPBASE)\lib\os2.lib, gsdll2.def
  512. !endif
  513. !if $(IBMCPP)
  514.     LINK386 /NOE /DEBUG @$(ld_tr) gsdll.obj, $(GSDLL).dll, , , gsdll2.def
  515. !endif
  516.  
  517. !else
  518. #making an EXE
  519. GS_ALL=gs.$(OBJ) $(INT_ALL) $(INTASM)\
  520.   $(LIB_ALL) $(LIBCTR) $(ld_tr) lib.tr $(GS).res $(ICONS)
  521.  
  522. $(GS_XE): $(GS_ALL) $(ALL_DEVS)
  523.     $(COMPDIR)\gcc $(CGDB) -o $(GS) gs.$(OBJ) @$(ld_tr) $(INTASM) -lm
  524.     $(COMPDIR)\emxbind -r$*.res $(COMPDIR)\emxl.exe $(GS) $(GS_XE) -ac
  525.     del $(GS)
  526. !endif
  527.  
  528. # Make the icons from their text form.
  529.  
  530. gsos2.ico: gsos2.icx $(ECHOGS_XE)
  531.     echogs -wb gsos2.ico -n -X -r gsos2.icx
  532.  
  533. gspmdrv.ico: gspmdrv.icx $(ECHOGS_XE)
  534.     echogs -wb gspmdrv.ico -n -X -r gspmdrv.icx
  535.  
  536. $(GS).res: $(GS).rc gsos2.ico
  537.     rc -i $(COMPBASE)\include -r $*.rc
  538.  
  539. # PM driver program
  540.  
  541. gspmdrv.o: gspmdrv.c gspmdrv.h
  542.     $(COMPDIR)\gcc $(CGDB) $(CO) -c $*.c
  543.  
  544. gspmdrv.res: gspmdrv.rc gspmdrv.h gspmdrv.ico
  545.     rc -i $(COMPBASE)\include -r $*.rc
  546.  
  547. gspmdrv.exe: gspmdrv.o gspmdrv.res gspmdrv.def
  548.     $(COMPDIR)\gcc $(CGDB) $(CO) -o $* $*.o
  549.     $(COMPDIR)\emxbind -p -r$*.res -d$*.def $(COMPDIR)\emxl.exe $* $*.exe
  550.     del $*
  551.